# -*- coding: UTF-8 -*-
'''
@Project ：pythonProject 
@File    ：functionDemo4.py
@Author  ：siwei
@Date    ：2023/11/2 22:21 
@other   ：str.print---->print(str)
'''


# 函数的返回值
# 1.如果函数的运行结果需要在其它函数中使用，那么这个函数就应该被定义为带返回值的函数。
# 2.函数的运行结果使用return关键字进行返回
# 3.return可以出现在函数中的任意一个位置，用于结束函数。
# 4.返回值可以是一个值，或多个值，如果返回的值是多个，结果是一个元组类型。
def calculate(a, b):
    print(a + b)


calculate(1, 2)  # 调用函数结果是3
print(calculate(1, 2))  # 输出函数结果是None,因为函数没有返回值

print('-' * 20)


def calculate2(a, b):
    s = a + b
    return s  # 将a+b返回给函数的调用处去处理


get_sum1 = calculate2(1, 2)  # 将函数的返回值赋值给变量get_sum
print(get_sum1)  # 输出函数的返回值get_sum为3

get_sum2 = calculate2(calculate2(1, 2), 3)  # 将函数的返回值作为形参,再次调用函数进行计算
print(get_sum2)

print('-' * 20)


def calculate3(num):
    odd_sum = 0  # 奇数和
    even_sum = 0  # 偶数和
    sum = 0  # 总数和
    for i in range(1, num + 1):
        if i % 2 == 0:
            even_sum += i
        else:
            odd_sum += i
        sum += i
    return odd_sum, even_sum, sum


s = calculate3(10)  # 返回的值是多个，结果是一个元组类型,赋值给s
print(s, type(s))  # 返回一个元组,有三个值
# 元组解包赋值
a, b, c = s
print(a, b, c)
